package hcn.protocol.brandnew.feiyong.feiyongqingdan;

import lombok.Data;
import javax.xml.bind.annotation.*;
import java.util.List;
import hcn.protocol.brandnew.BaseRequest;
import org.atag.sysrouter.annotation.DictionaryMapping;


/**
 * 发票信息查询-请求信息 - ODS_04030009
 *
 * @author enjoyLife
 */
@Data
@XmlRootElement(name = "MsgBody")
@XmlAccessorType(XmlAccessType.FIELD)
public class RefundBySelfPaidRequest extends BaseRequest {

    /**
     * 医疗机构组织机构代码
     */
    @XmlElement(name = "VisitOrganization")
    private String visitOrganization;
    /**
     * 查询组合类型
     */
    @XmlElement(name = "QueryType")
    private String queryType;
    /**
     * 患者证件集合
     */
    @XmlElementWrapper(name = "IdCardLists")
    @XmlElement(name = "IdCardList")
    private List<IdCardList> idCardLists;
    /**
     * 患者卡集合
     */
    @XmlElementWrapper(name = "MedicalCardLists")
    @XmlElement(name = "MedicalCardList")
    private List<MedicalCardList> medicalCardLists;
    /**
     * 患者ID集合
     */
    @XmlElementWrapper(name = "PatientIdLists")
    @XmlElement(name = "PatientIdList")
    private List<PatientIdList> patientIdLists;
    /**
     * 预结算标识
     */
    @XmlElement(name = "PaymentNumber")
    private String paymentNumber;
    /**
     * 每页条数
     */
    @XmlElement(name = "PageSize")
    private Long pageSize;
    /**
     * 分页页数
     */
    @XmlElement(name = "PageNo")
    private Long pageNo;

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class IdCardList {

        /**
         * 身份证件号码
         */
        @XmlElement(name = "IdCard")
        private String idCard;
        /**
         * 身份证件类别代码
         */
        @XmlElement(name = "IdCardCode")
        @DictionaryMapping(id = "CV02_01_101")
        private String idCardCode;
    }

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class MedicalCardList {

        /**
         * 患者卡号
         */
        @XmlElement(name = "MedicalCardID")
        private String medicalCardID;
        /**
         * 诊疗卡类型
         */
        @XmlElement(name = "MedicalCardType")
        private String medicalCardType;
    }

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class PatientIdList {

        /**
         * 患者ID
         */
        @XmlElement(name = "SourcePatientId")
        private String sourcePatientId;
    }

}
